package dungeon;

import square.Square;

/**
 * A class for creating levels, as a type of dungeon that has a fixed coordinate in the direction of the z axis.
 * 
 * @version	3.0
 * @author 	Inge Gielis <inge.gielis@student.kuleuven.be>
 * @author	Annelies ketelslegers <annelies.ketelslegers@student.kuleuven.be
 */
public class Level<E extends Square> extends LeafDungeon<E> {
	
	/**
	 * Initialize this new level with the given values as the maximum values for the coordinates
	 * of the positions of squares in this level.
	 * 
	 * @param 	maxX
	 * 			The maximum value for the x coordinate of a position in a level.
	 * @param 	maxY
	 * 			The maximum value for the Y coordinate of a position in a level.
	 * @param 	maxZ
	 * 			The maximum value for the Z coordinate of a position in a level.
	 * 
	 * @throws 	IllegalArgumentException
	 * 			The given maximum coordinate along the z axis is an invalid coordinate for a level.
	 * 			In a level the z coordinate must always be zero.
	 * 			| maxZ != 0
	 */
	public Level(long maxX, long maxY, long maxZ) throws IllegalArgumentException{
		super(maxX, maxY, maxZ);
		if(maxZ != 0)
			throw new IllegalArgumentException("The given maximum coordinate along the z axis is an invalid coordinate for a level!");
	}
}
